home *** CD-ROM | disk | FTP | other *** search
/ Greenhouse Effect Detection Expriment / NASA Greenhouse Effect Detection Expriment 1992 - Disc 2.iso / software / dos / cdf22pc / src / include / cdf.h next >
Encoding:
C/C++ Source or Header  |  1992-02-28  |  18.5 KB  |  572 lines

  1. /******************************************************************************
  2. *
  3. *  NSSDC/CDF                Header file for C and INTERNAL interfaces.
  4. *
  5. *  Version 3.0, 29-Feb-92, ST Systems (STX)
  6. *
  7. *  Modification history:
  8. *
  9. *   V1.0  22-Jan-91, R Kulkarni/J Love    Original version (for CDF V2.0).
  10. *   V2.0   3-Jun-91, J Love        Modified for CDF V2.1 enhancements,
  11. *                    namely the INTERNAL interface and the
  12. *                    MULTI/SINGLE file option.  Added
  13. *                    macros to replace C i/f functions.
  14. *   V2.1  20-Jun-91, J Love        Added function prototypes.
  15. *   V2.2   8-Aug-91, J Love        Increment for CDF V2.1.2.  Use
  16. *                    'CDFlib'.  Renamed a few items.
  17. *   V3.0  29-Feb-92, J Love        IBM PC & HP-UX port.  CDF V2.2.
  18. *
  19. ******************************************************************************/
  20.  
  21. #if !defined(___cdf_h___)
  22. #define ___cdf_h___
  23.  
  24. /******************************************************************************
  25. *  Current version/release/increment.
  26. ******************************************************************************/
  27.  
  28. #define CDF_LIBRARY_VERSION        (long) 2
  29. #define CDF_LIBRARY_RELEASE        (long) 2
  30. #define CDF_LIBRARY_INCREMENT        (long) 0
  31. #define CDF_LIBRARY_subINCREMENT    '*'
  32.  
  33. /******************************************************************************
  34. *  Limits
  35. ******************************************************************************/
  36.  
  37. #define CDF_MAX_CDFS    128        /* max number of CDFs which may be
  38.                        open at the same time */
  39. #define CDF_MAX_VARS    128        /* max number of variables a CDF may
  40.                        have */
  41. #define CDF_MIN_DIMS    0        /* min number of dimensions a CDF may
  42.                        have */
  43. #define CDF_MAX_DIMS    10        /* max number of dimensions a CDF may
  44.                        have */
  45.  
  46. /******************************************************************************
  47. *  Lengths
  48. ******************************************************************************/
  49.  
  50. #define CDF_VAR_NAME_LEN    64
  51. #define CDF_ATTR_NAME_LEN    64
  52.  
  53. #define CDF_COPYRIGHT_LEN    1945        /* includes NUL-terminator */
  54. #define CDF_DOCUMENT_LEN    CDF_COPYRIGHT_LEN
  55.                         /* for compatibility with V2.0 */
  56.  
  57. #define CDF_STATUSTEXT_LEN    256
  58. #define CDF_ERRTEXT_LEN        CDF_STATUSTEXT_LEN
  59.                         /* for compatibility with V2.0 */
  60.  
  61. #define CDF_PATHNAME_LEN    128
  62. #define CDF_FILE_NAME_LEN    CDF_PATHNAME_LEN
  63. #define CDF_VAR_FILE_NAME_LEN    CDF_PATHNAME_LEN
  64.  
  65. /******************************************************************************
  66. *  Data types.
  67. ******************************************************************************/
  68.  
  69. #define CDF_INT1     (long) 1
  70. #define CDF_INT2     (long) 2
  71. #define CDF_INT4     (long) 4
  72.  
  73. #define CDF_UINT1    (long) 11
  74. #define CDF_UINT2    (long) 12
  75. #define CDF_UINT4    (long) 14
  76.  
  77. #define CDF_REAL4    (long) 21
  78. #define CDF_REAL8    (long) 22
  79.  
  80. #define CDF_EPOCH    (long) 31            /* NSSDC standard */
  81.  
  82. #define CDF_BYTE     (long) 41            /* same as CDF_INT1 (signed) */
  83. #define CDF_FLOAT    (long) 44            /* same as CDF_REAL4 */
  84. #define CDF_DOUBLE   (long) 45            /* same as CDF_REAL8 */
  85.  
  86. #define CDF_CHAR     (long) 51            /* a "string" data type */
  87. #define CDF_UCHAR    (long) 52            /* a "string" data type */
  88.  
  89. #define    CDF_ILLEGAL_DATATYPE    (long) (-1)    /* needed to support CDF
  90.                            Obsolete interface (from
  91.                            Version 1) */
  92.  
  93. /******************************************************************************
  94. *  Encoding Formats (for data only, everything else is network encoding)
  95. ******************************************************************************/
  96.  
  97. #define NETWORK_ENCODING    (long) 1
  98.  
  99. #define SUN_ENCODING        (long) 2
  100. #define VAX_ENCODING        (long) 3
  101. #define MIPSEL_ENCODING        (long) 4
  102. #define MIPSEB_ENCODING        (long) 5
  103. #define IBMPC_ENCODING        (long) 6
  104. #define IBMRS_ENCODING        (long) 7
  105.  
  106. #define HOST_ENCODING        (long) 8
  107.  
  108. /* #define CRAY_ENCODING    (long) 9 */
  109. /* #define MAC_ENCODING        (long) 10 */
  110.  
  111. #define HP_ENCODING        (long) 11
  112.  
  113. /******************************************************************************
  114. *  Variance flags
  115. ******************************************************************************/
  116.  
  117. #define VARY    (long) (-1)    /* TRUE record or dimension variance flag */
  118. #define NOVARY    (long) 0    /* FALSE record or dimension variance flag */
  119.  
  120. /******************************************************************************
  121. *  Majorities
  122. ******************************************************************************/
  123.  
  124. #define ROW_MAJOR    (long) 1
  125. #define COL_MAJOR    (long) 2
  126.  
  127. /******************************************************************************
  128. *  Formats.
  129. ******************************************************************************/
  130.  
  131. #define SINGLE_FILE    (long) 1
  132. #define MULTI_FILE    (long) 2
  133.  
  134. /******************************************************************************
  135. *  Attribute scopes
  136. ******************************************************************************/
  137.  
  138. #define GLOBAL_SCOPE        (long) 1
  139. #define VARIABLE_SCOPE        (long) 2
  140. #define GLOBAL_SCOPE_ASSUMED    (long) 3
  141. #define VARIABLE_SCOPE_ASSUMED    (long) 4
  142.  
  143. /*****************************************************************************
  144. * Optimization.
  145. *****************************************************************************/
  146.  
  147. #define C_INTERFACE_MACROS    1    /* when TRUE (1), the macros found in
  148.                        'cdf.h' will be used for most C
  149.                        interface calls (expand to call the
  150.                        INTERNAL interface directly) */
  151.  
  152. /******************************************************************************
  153. *  Status codes (CDFstatus)
  154. *   - informatory codes are greater than CDF_OK
  155. ******************************************************************************/
  156.  
  157. #define VIRTUAL_RECORD_DATA        (CDFstatus) 1001
  158. #define READ_ONLY_ACCESS        (CDFstatus) 1002
  159. #define VERSION_1_CDF            (CDFstatus) 1003
  160.  
  161. #define CDF_OK                (CDFstatus) 0
  162.  
  163. #define ATTR_NAME_TRUNC            (CDFstatus) (-1001)
  164. #define CDF_NAME_TRUNC            (CDFstatus) (-1002)
  165. #define VAR_NAME_TRUNC            (CDFstatus) (-1003)
  166. #define CDF_INCOMPATIBLE        (CDFstatus) (-1004)
  167. #define VAR_ALREADY_CLOSED        (CDFstatus) (-1005)
  168. #define SINGLE_FILE_FORMAT        (CDFstatus) (-1006)
  169. #define NO_FILLVALUE_SPECIFIED        (CDFstatus) (-1007)
  170. #define NO_VARS_IN_CDF            (CDFstatus) (-1008)
  171.  
  172. #define CDF_WARN            (CDFstatus) (-2000)
  173.                         /* threshold, never returned */
  174.  
  175. #define ATTR_EXISTS            (CDFstatus) (-2001)
  176. #define BAD_CDF_ID            (CDFstatus) (-2002)
  177. #define BAD_DATA_TYPE            (CDFstatus) (-2003)
  178. #define BAD_DIM_SIZE            (CDFstatus) (-2004)
  179. #define BAD_DIM_INDEX            (CDFstatus) (-2005)
  180. #define BAD_ENCODING            (CDFstatus) (-2006)
  181. #define BAD_MAJORITY            (CDFstatus) (-2007)
  182. #define BAD_NUM_DIMS            (CDFstatus) (-2008)
  183. #define BAD_REC_NUM            (CDFstatus) (-2009)
  184. #define BAD_SCOPE            (CDFstatus) (-2010)
  185. #define BAD_NUM_ELEMS            (CDFstatus) (-2011)
  186. #define CDF_OPEN_ERROR            (CDFstatus) (-2012)
  187. #define CDF_EXISTS            (CDFstatus) (-2013)
  188. #define BAD_FORMAT            (CDFstatus) (-2014)
  189. #define VAX_ENCODING_UNSUPPORTED    (CDFstatus) (-2015)
  190. #define SUN_ENCODING_UNSUPPORTED    (CDFstatus) (-2016)
  191. #define NO_SUCH_ATTR            (CDFstatus) (-2017)
  192. #define NO_SUCH_ENTRY            (CDFstatus) (-2018)
  193. #define NO_SUCH_VAR            (CDFstatus) (-2019)
  194. #define VAR_READ_ERROR            (CDFstatus) (-2020)
  195. #define VAR_WRITE_ERROR            (CDFstatus) (-2021)
  196. #define TOO_MANY_CDFS            (CDFstatus) (-2022)
  197. #define IBM_PC_OVERFLOW            (CDFstatus) (-2023)
  198. #define TOO_MANY_VARS            (CDFstatus) (-2024)
  199. #define VAR_EXISTS            (CDFstatus) (-2025)
  200. #define BAD_MALLOC                  (CDFstatus) (-2026)
  201. #define NOT_A_CDF                   (CDFstatus) (-2027)
  202. #define CORRUPTED_V2_CDF        (CDFstatus) (-2028)
  203. #define VAR_OPEN_ERROR            (CDFstatus) (-2029)
  204. #define BAD_INITIAL_RECS        (CDFstatus) (-2030)
  205. #define BAD_EXTEND_RECS            (CDFstatus) (-2031)
  206. #define END_OF_VAR            (CDFstatus) (-2032)
  207. #define MIPSEB_ENCODING_UNSUPPORTED    (CDFstatus) (-2033)
  208. #define BAD_CDFSTATUS            (CDFstatus) (-2034)
  209. #define NO_WRITE_ACCESS            (CDFstatus) (-2035)
  210. #define NO_DELETE_ACCESS        (CDFstatus) (-2036)
  211. #define BAD_REC_COUNT            (CDFstatus) (-2037)
  212. #define BAD_REC_INTERVAL        (CDFstatus) (-2038)
  213. #define BAD_DIM_COUNT            (CDFstatus) (-2039)
  214. #define BAD_DIM_INTERVAL        (CDFstatus) (-2040)
  215. #define BAD_VAR_NUM            (CDFstatus) (-2041)
  216. #define BAD_ATTR_NUM            (CDFstatus) (-2042)
  217. #define BAD_ENTRY_NUM            (CDFstatus) (-2043)
  218. #define BAD_ATTR_NAME            (CDFstatus) (-2044)
  219. #define BAD_VAR_NAME            (CDFstatus) (-2045)
  220. #define NO_ATTR_SELECTED        (CDFstatus) (-2046)
  221. #define NO_ENTRY_SELECTED        (CDFstatus) (-2047)
  222. #define NO_VAR_SELECTED            (CDFstatus) (-2048)
  223. #define BAD_CDF_NAME            (CDFstatus) (-2049)
  224. #define MIPSEL_ENCODING_UNSUPPORTED    (CDFstatus) (-2050)
  225. #define CANNOT_CHANGE            (CDFstatus) (-2051)
  226. #define NO_STATUS_SELECTED        (CDFstatus) (-2052)
  227. #define NO_CDF_SELECTED            (CDFstatus) (-2053)
  228. #define NO_RECORDS_EXIST        (CDFstatus) (-2054)
  229. #define CDF_CLOSE_ERROR            (CDFstatus) (-2055)
  230. #define VAR_CLOSE_ERROR            (CDFstatus) (-2056)
  231. #define HP_ENCODING_UNSUPPORTED        (CDFstatus) (-2057)
  232. #define BAD_FNC_OR_ITEM            (CDFstatus) (-2058)
  233. #define CORRUPTED_V1_CDF        (CDFstatus) (-2059)
  234. #define ILLEGAL_ON_V1_CDF        (CDFstatus) (-2060)
  235. #define CDH_OPEN_ERROR            (CDFstatus) (-2061)
  236. #define CDH_CLOSE_ERROR            (CDFstatus) (-2062)
  237. #define V1_CDF_UNSUPPORTED        (CDFstatus) (-2063)
  238. #define IBMPC_ENCODING_UNSUPPORTED    (CDFstatus) (-2064)
  239. #define IBMRS_ENCODING_UNSUPPORTED    (CDFstatus) (-2065)
  240. #define CDF_CREATE_ERROR        (CDFstatus) (-2066)
  241. #define NO_SUCH_CDF            (CDFstatus) (-2067)
  242. #define VAR_CREATE_ERROR        (CDFstatus) (-2068)
  243.  
  244. /******************************************************************************
  245. *  Functions (for INTERNAL interface).
  246. *  NOTE: These values must be different from those of the items.
  247. ******************************************************************************/
  248.  
  249. #define CREATE_      (long) 101
  250. #define OPEN_      (long) 102
  251. #define DELETE_      (long) 103
  252. #define CLOSE_      (long) 104
  253. #define SELECT_      (long) 105
  254. #define CONFIRM_  (long) 106
  255. #define GET_      (long) 107
  256. #define PUT_      (long) 108
  257.  
  258. #define NULL_      (long) 0    /* ends the call to the INTERNAL interface */
  259.  
  260. /******************************************************************************
  261. *  Items on which functions are performed (for INTERNAL interface).
  262. *  NOTE: These values must be different from those of the functions.
  263. ******************************************************************************/
  264.  
  265. #define CDF_            (long) 1
  266. #define CDF_NAME_        (long) 2
  267. #define CDF_NUMDIMS_        (long) 3
  268. #define CDF_DIMSIZES_        (long) 4
  269. #define CDF_ENCODING_        (long) 5
  270. #define CDF_MAJORITY_        (long) 6
  271. #define CDF_FORMAT_        (long) 7
  272. #define CDF_COPYRIGHT_        (long) 8
  273. #define CDF_NUMVARS_        (long) 9
  274. #define CDF_NUMATTRS_        (long) 10
  275. #define CDF_MAXREC_        (long) 11
  276. #define CDF_VERSION_        (long) 12
  277. #define CDF_RELEASE_        (long) 13
  278. #define CDF_INCREMENT_        (long) 14
  279. #define CDF_ARRAY_        (long) 15
  280. #define CDF_STATUS_        (long) 16
  281.  
  282. #define LIB_COPYRIGHT_        (long) 17
  283. #define LIB_VERSION_        (long) 18
  284. #define LIB_RELEASE_        (long) 19
  285. #define LIB_INCREMENT_        (long) 20
  286. #define LIB_subINCREMENT_    (long) 21
  287.  
  288. #define VAR_            (long) 22
  289.  
  290. #define CDF_RECNUMBER_        (long) 23
  291. #define CDF_RECCOUNT_        (long) 24
  292. #define CDF_RECINTERVAL_    (long) 25
  293. #define CDF_DIMINDICES_        (long) 26
  294. #define CDF_DIMCOUNTS_        (long) 27
  295. #define CDF_DIMINTERVALS_    (long) 28
  296.  
  297. #define VAR_NAME_        (long) 29
  298. #define VAR_DATATYPE_        (long) 30
  299. #define VAR_NUMELEMS_        (long) 31
  300. #define VAR_RECVARY_        (long) 32
  301. #define VAR_DIMVARYS_        (long) 33
  302. #define VAR_NUMBER_        (long) 34
  303. #define VAR_DATA_        (long) 35
  304. #define VAR_HYPERDATA_        (long) 36
  305. #define VAR_SEQDATA_        (long) 37
  306. #define VAR_SEQPOS_        (long) 38
  307. #define VAR_MAXREC_        (long) 39
  308. #define VAR_DATASPEC_        (long) 40
  309. #define VAR_FILLVALUE_        (long) 41
  310. #define VAR_INITIALRECS_    (long) 42
  311. #define VAR_EXTENDRECS_        (long) 43
  312.  
  313. #define ATTR_            (long) 44
  314. #define ATTR_SCOPE_        (long) 45
  315. #define ATTR_NAME_        (long) 46
  316. #define ATTR_NUMBER_        (long) 47
  317. #define ATTR_MAXENTRY_        (long) 48
  318. #define ATTR_NUMENTRIES_    (long) 49
  319.  
  320. #define ENTRY_            (long) 50
  321. #define ENTRY_DATATYPE_        (long) 51
  322. #define ENTRY_NUMELEMS_        (long) 52
  323. #define ENTRY_DATA_        (long) 53
  324.  
  325. #define STATUS_TEXT_        (long) 54
  326.  
  327. /******************************************************************************
  328. * C interface macro.
  329. ******************************************************************************/
  330.  
  331. #if C_INTERFACE_MACROS
  332. #define CDFcreate(CDFname,numDims,dimSizes,encoding,majority,id) \
  333. CDFlib (CREATE_, CDF_, CDFname, numDims, dimSizes, id, \
  334.     PUT_, CDF_ENCODING_, encoding, \
  335.           CDF_MAJORITY_, majority, \
  336.     NULL_)
  337.  
  338. #define CDFopen(CDFname,id) \
  339. CDFlib (OPEN_, CDF_, CDFname, id, \
  340.     NULL_)
  341.  
  342. #define CDFdoc(id,version,release,text) \
  343. CDFlib (SELECT_, CDF_, id, \
  344.     GET_, CDF_VERSION_, version, \
  345.           CDF_RELEASE_, release, \
  346.           CDF_COPYRIGHT_, text, \
  347.     NULL_)
  348.  
  349. #define CDFinquire(id,numDims,dimSizes,encoding,majority,maxRec,numVars,numAttrs) \
  350. CDFlib (SELECT_, CDF_, id, \
  351.     GET_, CDF_NUMDIMS_, numDims, \
  352.           CDF_DIMSIZES_, dimSizes, \
  353.           CDF_ENCODING_, encoding, \
  354.           CDF_MAJORITY_, majority, \
  355.           CDF_MAXREC_, maxRec, \
  356.           CDF_NUMVARS_, numVars, \
  357.           CDF_NUMATTRS_, numAttrs, \
  358.     NULL_)
  359.  
  360. #define CDFclose(id) \
  361. CDFlib (SELECT_, CDF_, id, \
  362.     CLOSE_, CDF_, \
  363.     NULL_)
  364.  
  365. #define CDFdelete(id) \
  366. CDFlib (SELECT_, CDF_, id, \
  367.     DELETE_, CDF_, \
  368.     NULL_)
  369.  
  370. #define CDFerror(stat, text) \
  371. CDFlib (SELECT_, CDF_STATUS_, stat, \
  372.     GET_, STATUS_TEXT_, text, \
  373.     NULL_)
  374.  
  375. #define CDFattrCreate(id,attrName,attrScope,attrNum) \
  376. CDFlib (SELECT_, CDF_, id, \
  377.     CREATE_, ATTR_, attrName, attrScope, attrNum, \
  378.     NULL_)
  379.  
  380. #define CDFattrCorrectScope(id,attrNum,attrScope) \
  381. CDFlib (SELECT_, CDF_, id, \
  382.          ATTR_, attrNum, \
  383.     PUT_, ATTR_SCOPE_, attrScope, \
  384.     NULL_)
  385.  
  386. #define CDFattrRename(id,attrNum,attrName) \
  387. CDFlib (SELECT_, CDF_, id, \
  388.          ATTR_, attrNum, \
  389.     PUT_, ATTR_NAME_, attrName, \
  390.     NULL_)
  391.  
  392. #define CDFattrInquire(id,attrNum,attrName,attrScope,maxEntry) \
  393. CDFlib (SELECT_, CDF_, id, \
  394.          ATTR_, attrNum, \
  395.     GET_, ATTR_NAME_, attrName, \
  396.           ATTR_SCOPE_, attrScope, \
  397.           ATTR_MAXENTRY_, maxEntry, \
  398.     NULL_)
  399.  
  400. #define CDFattrEntryInquire(id,attrNum,entryNum,dataType,numElements) \
  401. CDFlib (SELECT_, CDF_, id, \
  402.          ATTR_, attrNum, \
  403.          ENTRY_, entryNum, \
  404.     GET_, ENTRY_DATATYPE_, dataType, \
  405.           ENTRY_NUMELEMS_, numElements, \
  406.     NULL_)
  407.  
  408. #define CDFattrPut(id,attrNum,entryNum,dataType,numElements,value) \
  409. CDFlib (SELECT_, CDF_, id, \
  410.          ATTR_, attrNum, \
  411.          ENTRY_, entryNum, \
  412.     PUT_, ENTRY_DATA_, dataType, numElements, value, \
  413.     NULL_)
  414.  
  415. #define CDFattrGet(id,attrNum,entryNum,value) \
  416. CDFlib (SELECT_, CDF_, id, \
  417.          ATTR_, attrNum, \
  418.          ENTRY_, entryNum, \
  419.     GET_, ENTRY_DATA_, value, \
  420.     NULL_)
  421.  
  422. #define CDFvarCreate(id,varName,dataType,numElements,recVariance,dimVariances,varNum) \
  423. CDFlib (SELECT_, CDF_, id, \
  424.     CREATE_, VAR_, varName, dataType, numElements, \
  425.                recVariance, dimVariances, varNum, \
  426.     NULL_)
  427.  
  428. #define CDFvarRename(id,varNum,varName) \
  429. CDFlib (SELECT_, CDF_, id, \
  430.          VAR_, varNum, \
  431.     PUT_, VAR_NAME_, varName, \
  432.     NULL_)
  433.  
  434. #define CDFvarInquire(id,varNum,varName,dataType,numElements,recVariance,dimVariance) \
  435. CDFlib (SELECT_, CDF_, id, \
  436.          VAR_, varNum, \
  437.     GET_, VAR_NAME_, varName, \
  438.           VAR_DATATYPE_, dataType, \
  439.           VAR_NUMELEMS_, numElements, \
  440.           VAR_RECVARY_, recVariance, \
  441.           VAR_DIMVARYS_, dimVariance, \
  442.     NULL_)
  443.  
  444. #define CDFvarGet(id,varNum,recNum,indices,value) \
  445. CDFlib (SELECT_, CDF_, id, \
  446.          VAR_, varNum, \
  447.          CDF_RECNUMBER_, recNum, \
  448.          CDF_DIMINDICES_, indices, \
  449.     GET_, VAR_DATA_, value, \
  450.     NULL_)
  451.  
  452. #define CDFvarPut(id,varNum,recNum,indices,value) \
  453. CDFlib (SELECT_, CDF_, id, \
  454.          VAR_, varNum, \
  455.          CDF_RECNUMBER_, recNum, \
  456.          CDF_DIMINDICES_, indices, \
  457.     PUT_, VAR_DATA_, value, \
  458.     NULL_)
  459.  
  460. #define CDFvarHyperGet(id,varNum,recStart,recCount,recInterval,indices,counts,intervals,buffer) \
  461. CDFlib (SELECT_, CDF_, id, \
  462.          VAR_, varNum, \
  463.          CDF_RECNUMBER_, recStart, \
  464.          CDF_RECCOUNT_, recCount, \
  465.          CDF_RECINTERVAL_, recInterval, \
  466.          CDF_DIMINDICES_, indices, \
  467.          CDF_DIMCOUNTS_, counts, \
  468.          CDF_DIMINTERVALS_, intervals, \
  469.     GET_, VAR_HYPERDATA_, buffer, \
  470.     NULL_)
  471.  
  472. #define CDFvarHyperPut(id,varNum,recStart,recCount,recInterval,indices,counts,intervals,buffer) \
  473. CDFlib (SELECT_, CDF_, id, \
  474.          VAR_, varNum, \
  475.          CDF_RECNUMBER_, recStart, \
  476.          CDF_RECCOUNT_, recCount, \
  477.          CDF_RECINTERVAL_, recInterval, \
  478.          CDF_DIMINDICES_, indices, \
  479.          CDF_DIMCOUNTS_, counts, \
  480.          CDF_DIMINTERVALS_, intervals, \
  481.     PUT_, VAR_HYPERDATA_, buffer, \
  482.     NULL_)
  483.  
  484. #define CDFvarClose(id,varNum) \
  485. CDFlib (SELECT_, CDF_, id, \
  486.          VAR_, varNum, \
  487.     CLOSE_, VAR_, \
  488.     NULL_)
  489. #endif
  490.  
  491. /******************************************************************************
  492. *  CDF defined types
  493. ******************************************************************************/
  494.  
  495. typedef long CDFid;
  496. typedef long CDFstatus;
  497.  
  498. /******************************************************************************
  499. * Function prototypes.
  500. ******************************************************************************/
  501.  
  502. #if defined(vms) | defined(__MSDOS__)
  503. CDFstatus CDFlib (long, ...);
  504.  
  505. #if !C_INTERFACE_MACROS
  506. CDFstatus CDFcreate (char *, long, long *, long, long, CDFid *);
  507. CDFstatus CDFopen (char *, CDFid *);
  508. CDFstatus CDFdoc (CDFid, long *, long *, char *);
  509. CDFstatus CDFinquire (CDFid, long *, long *, long *, long *,
  510.               long *, long *, long *);
  511. CDFstatus CDFclose (CDFid);
  512. CDFstatus CDFdelete (CDFid);
  513. CDFstatus CDFerror (CDFstatus, char *);
  514. CDFstatus CDFattrCreate (CDFid, char *, long, long *);
  515. CDFstatus CDFattrCorrectScope (CDFid, long, long);
  516. CDFstatus CDFattrRename (CDFid, long, char *);
  517. CDFstatus CDFattrInquire (CDFid, long, char *, long *, long *);
  518. CDFstatus CDFattrEntryInquire (CDFid, long, long, long *, long *);
  519. CDFstatus CDFattrPut (CDFid, long, long, long, long, void *);
  520. CDFstatus CDFattrGet (CDFid, long, long, void *);
  521. CDFstatus CDFvarCreate (CDFid, char *, long, long, long, long *, long *);
  522. CDFstatus CDFvarRename (CDFid, long, char *);
  523. CDFstatus CDFvarInquire (CDFid, long, char *, long *, long *, long *, long *);
  524. CDFstatus CDFvarGet (CDFid, long, long, long *, void *);
  525. CDFstatus CDFvarPut (CDFid, long, long, long *, void *);
  526. CDFstatus CDFvarHyperGet (CDFid, long, long, long, long,
  527.               long *, long *, long *, void *);
  528. CDFstatus CDFvarHyperPut (CDFid, long, long, long, long,
  529.               long *, long *, long *, void *);
  530. CDFstatus CDFvarClose (CDFid, long);
  531. #endif
  532.  
  533. long CDFattrNum (CDFid, char *);
  534. long CDFvarNum (CDFid, char *);
  535. #endif
  536.  
  537. #if defined(unix)
  538. CDFstatus CDFlib ();
  539.  
  540. #if !C_INTERFACE_MACROS
  541. CDFstatus CDFcreate ();
  542. CDFstatus CDFopen ();
  543. CDFstatus CDFdoc ();
  544. CDFstatus CDFinquire ();
  545. CDFstatus CDFclose ();
  546. CDFstatus CDFdelete ();
  547. CDFstatus CDFerror ();
  548. CDFstatus CDFattrCreate ();
  549. CDFstatus CDFattrCorrectScope ();
  550. CDFstatus CDFattrRename ();
  551. CDFstatus CDFattrInquire ();
  552. CDFstatus CDFattrEntryInquire ();
  553. CDFstatus CDFattrPut ();
  554. CDFstatus CDFattrGet ();
  555. CDFstatus CDFvarCreate ();
  556. CDFstatus CDFvarRename ();
  557. CDFstatus CDFvarInquire ();
  558. CDFstatus CDFvarGet ();
  559. CDFstatus CDFvarPut ();
  560. CDFstatus CDFvarHyperGet ();
  561. CDFstatus CDFvarHyperPut ();
  562. CDFstatus CDFvarClose ();
  563. #endif
  564.  
  565. long CDFattrNum ();
  566. long CDFvarNum ();
  567. #endif
  568.  
  569. /****************************************************************************/
  570.  
  571. #endif    /*___cdf_h___*/
  572.